// pagesEnterprise/pages/parkSign/parkSign.js
import ajax from "../../../utils/index"
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    /**
     * 用户信息
     */
    userInfo: null,
    /**
     * 企业信息
     */
    enterprise: null,
    /**
     * 搜索显示隐藏
     */
    showSearch: false,
    /**
     * 搜索内容
     */
    searchList: [],
    /**
     * 协议状态
     */
    agreement: false,
    isSubmit: false,
    formData: {
      id: null,
      gardenName: null, // 园区名字
      companyId: null, // 管理公司id
      manageCompany: null, // 管理公司名称
      manageCard: null, // 管理员身份证号
      manageName: null, // 	管理员姓名
      phone: null, // 手机号码
    },
    showLoginPicker: false,
  },
  loginSuccess() {
    this.loginCancel()
    this.getUserInfo()
  },
  loginCancel() {
    this.setData({ showLoginPicker: false })
  },
  isModeEvent() {
    this.setData({ showLoginPicker: true })
  },
  /**
   * 协议事件
   */
  agreementChange(event) {
    this.data.agreement = event.detail
    this.isSubmitChange()
  },
  /**
   * 校验是否可以点击
   */
  isSubmitChange() {
    const { companyId, gardenName, manageCard, manageCompany, manageName, phone } = this.data.formData
    this.setData({ isSubmit: !(!(companyId && gardenName && manageCard && manageCompany && manageName && phone && this.data.agreement)) })
  },
  /**
   * input 变化事件
   */
  formItemChange(event) {
    const { formData } = this.data
    const key = event.currentTarget.dataset.key
    const value = event.detail
    formData[key] = value
    this.setData({ formData })
    this.isSubmitChange()
  },
  /**
   * 显示隐藏 搜索内容
   */
  showSearchEvent() {
    this.setData({ showSearch: !this.data.showSearch })
  },
  /**
   * 搜索input变化事件
   */
  searchChange(event) {
    console.log(event)
    this.setData({ ['formData.gardenName']: event.detail.value })
    this.searchRequest(event.detail.value)
  },
  /**
   * 选择搜索内容事件
   */
  searchTextEvent(event) {
    const item = event.currentTarget.dataset.item
    this.setData({
      ['formData.gardenName']: item.gardenName,
      searchList: [],
      showSearch: false
    })
  },
  async searchRequest(gardenName) {
    if (!gardenName) return;
    const res = await ajax.get(`/my/house/master/parkList?parkName=${gardenName}`)
    this.setData({ searchList: res.rows })
  },
  /**
   * 获取企业详情
   */
  async enterpriseDetails(id) {
    const res = await ajax.get(`/enterprise/info?id=${id}`)
    const entity = res.data
    this.setData({ enterprise: entity, ['formData.companyId']: entity.id, ['formData.manageCompany']: entity.name })
  },

  /**
   * 获取用户信息
   */
  async getUserInfo() {
    const userInfo = await ajax.getUserInfo({ isLogin: true })
    if (userInfo.roles && userInfo.roles.company_id) this.enterpriseDetails(userInfo.roles.company_id);
    this.setData({ userInfo: userInfo })
  },
  /**
   * 提交事件
   */
  async submitEvent() {
    if (!this.data.userInfo) return this.isModeEvent()
    if (!this.data.agreement) {
      return wx.showModal({
        title: '提示',
        content: "请同意并阅读盈联易单配服务协议",
        showCancel: false
      })
    }
    const { companyId, gardenName, manageCard, manageName, phone } = this.data.formData
    if (!companyId) return ajax.showToast('请前往企业认证');
    if (!gardenName) return ajax.showToast('请输入园区名称');
    if (!manageName) return ajax.showToast('请输入管理者名称');
    if (!manageCard) return ajax.showToast('请输入管理者身份号');
    if (!ajax.regExp.card.test(manageCard)) return ajax.showToast('请输入正确的身份号');
    if (!phone) return ajax.showToast('请输入管理者手机号码');
    if (!ajax.regExp.phone.test(phone)) return ajax.showToast('请输入正确的手机号码');
    ajax.showLoading()
    await ajax.post("/garden/add", this.data.formData).finally(() => wx.hideLoading());
    await ajax.showSuccess("提交成功, 请等待审核")
    wx.navigateBack()
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    app.globalData.shareId = options.shareId || null
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getUserInfo()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})